chore(deps): use npm ci instead of npm-install #1037
Merged
+5
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces the use of the JavaScript action bahmutov/npm-install in several .github/workflows by a call to npm-ci.
Reasons
The JavaScript action bahmutov/npm-install relies on
node16
, which reached end-of-life on Sep 11, 2023. It is uncertain if there will be a new release to supportnode20
and it has been more than a year since any maintainer has responded to issues in this repo.The alternative npm-ci is available for all supported versions of Node.js as part of the
npm
utility, which is included in all standard GitHub runner images. This is equally fast or sometimes faster than using bahmutov/npm-install.Impact
Removes reliance on end-of-life Node.js
16
Removes dependency on bahmutov/npm-install
Removes caching of npm modules. Counterintuitively, this does not lengthen the run time of any of the changed actions. In some cases (see below) dealing with cache mechanics using
npm-install
was taking longer than installing usingnpm ci
without caching.Typical run times
The following table compares the run times of:
npm-install
(cache miss)npm-install
(cache hit)npm ci
(no cache usage)cache miss
cache hit
no cache
ping-cli